const condition: 'A' | 'B' = 'A';

condition;
//   ^?
type Pair3<T> = [first: T, T];
//     ^?

let empty: [] = <[]>[];

let array = [false] as false[];

let fl = array.filter((x: boolean): x is true => x === true);
//   ^?
/// should be `[]`

type _ = never extends unknown ? 1 : 0;
type B = { name: string };
interface A extends B {
  name: string;
  setName<T extends string>(newName: T): asserts this is { name: T };
}

let a!: A;
a.setName('1');

a.name;
//  ^?
